package com.da.springtest.ioc.create;

import org.springframework.beans.factory.FactoryBean;

/**
 * @author chenlida
 * @date 2020/6/13 22:07
 *
 * 1：返回了一个创建好的UserModel对象
 * 2：返回对象的Class对象
 * 3：返回true，表示创建的对象是单例的，那么我们每次从容器中获取这个对象的时候都是同一个对象
 * 4：此处用到了一个count，通过这个一会可以看出isSingleton不同返回值的时候从容器获取的bean是否是同一个
 */
public class UserFactoryBean implements FactoryBean<UserModel> {
    private int count = 1;

    @Override
    public UserModel getObject() throws Exception {
        UserModel userModel = new UserModel();
        userModel.setName("我是通过FactoryBean创建的第" + count++ + "对象");
        return userModel;
    }

    @Override
    public Class<?> getObjectType() {
        return UserModel.class;
    }

    @Override
    public boolean isSingleton() {
        return true;
    }
}